              A LISP INTERPRETOR FOR THE 8080 MICRO
                         COMPUTING SYSTEM

          AS ASSEMBLED HERE ENTRY IS AT 100H. MOST OF THE CODE
MAY BE ANYWHERE IN MEMORY BUT ALL LISP DATA ELEMENTS (CONS
CELLS AND ATOMS) MUST BE IN THE FIRST 16K OF MEMORY . THE
INTERPRETER IS COMPLETELY SELF CONTAINED EXCEPT FOR TERMINAL
1\0. ON INPUT FROM THE TERMINAL, ALL CONTROL CHARACTERS ARE
IGNORED ,AND THUS MAY BE FREELY ADDED TO IMPROVE READABILITY.
ALL INPUT IS PARSED AS LITERAL ATOMS AND S.EXPRESSIONS .AN ATOM
IS ANY STRING OF ALPHANUMERIC CHARACTERS NOT OVER 16 CHARACTERS
LONG. SOME EXAMPLES OF LEGALATOMSARE;                          
  ATOM  934  A47  47A                                          
 SOME EXAMPLES OF ILLEGAL ATOMS ARE :                          
                  VERYLONGSTRINGOFLETTERS  (MORD THAN 16       
                                            CHARACTERS)        
                                           (CONTAINS NON ALPHA-
                                            NUMERIC-)          
    THE ONLY OTHER CHARCTERS RECOGNIZED BY THE SYSTEM ARE LEFT
AND RIGTH PARENTHESES, COMMAS ,PERIODS AND BLANKS .CONSECUTIVE
ATOMS IN LISTS AND S-AXPRESSION MUST BE SEPARATED BY AT LEAST
ONE OF THESE SYINBOLS TO BE RECOGNIZED. BLANKS MAY BE
OPTIONALLY INSERTED BEFORE AND AFTER RIGHT PARENS .BOTH INPUT
AND OUTPUT ROUTINES CAN HANDLE MIXED S.EXPRESSIONS (WITH DOT
NOTATION )AND LIST NOTATION .THE OUTPUT RUTINES WILL ALWAYS USE
LIST NOTATION WHENEVER POSSIBLE , BUT WILL USE DOTTED NOTATION
WHEN NECESSARY . E.G.,AN S-EXPRESSION IN - PUT AS
:(INTEL.NIL).8080) WOULD PRINT AS (INTEL).8080).LOGICAL VALUES
RETURNED BY EQ, ATOM ,NULL AND EQUAL ARE T AND F. THESE MUST BE
QUOTED WHEN USED AS CONSTANTS IN A PROGEAM .THESE ARE ALSO THE
LOGICAL VALUES EXPECTED BY COND 8ANTUALLY COND ONLY TESTS FOR T
). THE INTERPRETER IS AN EVALQUOTE MODE INTERPRETER SO TWO S-
EXPRESSIONS MUST BE ENTERED FOR EVALUATION TO OCCUR .BOTH OF
THESE S-EXPRESSIONS MUST BE FOLLOWED BY A BLANK TO ALLOW FOR
THE LOOKAHEAD USED IN READ .AFTER RECOGNIZING THE SECOND S-
EXPRESSION, WHICH IS A LIST OF ARGUMENTS TO WHICH THE FIRST S-
EXPRESSION (TYPICALLY AN ATOM) WILL BE APPLIED ,BOTH OF THESE
EXPRESSION ARE EFFECTIVELY QUOTED, SO ALL ATOMS IN THE
EXPRESSION STAND FOR THEMSELVES ,NOT ANY DEFINED BINDING .ONCE
THE INTERPRTER RECOGNIZES THE SECOND EXPRESSION, IT DOES A NEW
LINE AND TYPES '>>' FOLLOWED BY THE RESULT OF THE COMPUTATION.
FOR EXAMPLE, IF THE FOLLOWING IS ENTERED AS INPUT:
DEFINE(((TT)(FF)(FF(LAMBDA(X)COND((ATOM X)X)(T(FF(CAR
X))))))))) THE INTERPRTER WILL RESPOND WITH: >>(TF FF)IF YOU
THEN ENTER: FF(((AB).C)) THE INTERPRETER WILL RESPOND WITH: >>A
 
